﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Bamuca.Codigo.DTO;
using MySql.Data.MySqlClient;
using System.Data;


namespace Bamuca.Codigo.DAO
{


    public class GrupoDao : ConexaoDao
    {
        MySqlConnection conn = ConexaoDao.SqlConectar();
        MySqlCommand cmd = new MySqlCommand();

        public void Inserir(GrupoDto _Grupo)
        {
            try
            {
                cmd.Connection = conn;
                cmd.CommandText = "insert into Grupos (nome, status) values ('" + _Grupo.Nome + "', " + _Grupo.Status + ")";
                cmd.ExecuteNonQuery();
            }
            catch (MySqlException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }

        }

        public void Alterar(GrupoDto _Grupo)
        {
            try
            {
                cmd.Connection = conn;
                cmd.CommandText = "update Grupos SET Nome = '" + _Grupo.Nome + "', " +
                "status = " + _Grupo.Status + " " +
                "WHERE IdGrupo = '" + _Grupo.IdGrupo + "'";
                cmd.ExecuteNonQuery();
            }
            catch (MySqlException ex)
            {
                throw ex;
            }

        }

        public void Excluir(int IdGrupo)
        {
            try
            {
                if (conn.State == ConnectionState.Closed)
                    conn.Open();

                cmd.Connection = conn;
                cmd.CommandText = "delete from grupos WHERE IdGrupo = " + IdGrupo;
                cmd.ExecuteNonQuery();
            }
            catch (MySqlException ex)
            {
                throw ex;
            }

        }

        public DataTable ConsultarTodos(GrupoDto _GrupoDto)
        {
            MySqlDataAdapter dtAdap;
            DataTable dtTable = new DataTable();

            string _strSql = "select idgrupo, nome, IF(status = 0, 'inativo', 'ativo') as nomestatus  FROM Grupos WHERE 1=1 ";
            if (_GrupoDto.IdGrupo > 0)
            {
                _strSql = _strSql + "AND idGrupo = " + _GrupoDto.IdGrupo + " ";
            }
            if (_GrupoDto.Nome != string.Empty)
            {
                _strSql = _strSql + "AND nome LIKE '%" + _GrupoDto.Nome + "%'";
            }

            if (_GrupoDto.Status != 2)
            {
                _strSql = _strSql + "AND status = " + _GrupoDto.Status + " ";
            }

            if (_GrupoDto.Ordenar == 1)
            {
                _strSql = _strSql + " ORDER BY nome ";
            }
            else
            {
                _strSql = _strSql + " ORDER BY status ";   
            }

            try
            {
                dtAdap = new MySqlDataAdapter(_strSql, conn);
                dtAdap.Fill(dtTable);
            }
            catch (MySqlException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }

            return dtTable;
        }

        public DataTable ConsultarTodos(int qtdRegistros)
        {
            MySqlDataAdapter dtAdap;
            DataTable dtTable = new DataTable();

            string _strSql = "select idgrupo, nome, IF(status = 0, 'inativo', 'ativo') as nomestatus  FROM Grupos ";
            if (qtdRegistros > 0)
            {
                _strSql = _strSql + " LIMIT " + qtdRegistros.ToString();
            }

            try
            {
                dtAdap = new MySqlDataAdapter(_strSql, conn);
                dtAdap.Fill(dtTable);
            }
            catch (MySqlException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }

            return dtTable;
        }

        public GrupoDto ConsultarSoUm(int idGrupo)
        {
            GrupoDto _GrupoDto = new GrupoDto();
            string _strSql = "select idgrupo, nome, status FROM Grupos WHERE idgrupo = "+ idGrupo +" ";


            try
            {
                cmd.CommandText = _strSql;
                cmd.Connection = conn;

                MySqlDataReader dr = cmd.ExecuteReader();

                if(dr.Read())
                {
                    _GrupoDto.IdGrupo = Convert.ToInt32(dr["idgrupo"]);
                    _GrupoDto.Nome = dr["nome"].ToString();
                    _GrupoDto.Status = Convert.ToInt32(dr["status"]);
                }

                dr.Close();

            }
            catch (MySqlException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }

            return _GrupoDto;
        }

    }
}